-- u64 test.

entry add = map2 (u64.+)
entry sub = map2 (u64.-)
entry mul = map2 (u64.*)
entry pow = map2 (u64.**)

-- ==
-- entry: add
-- input  { [0u64, 2u64, 9223372036854775807u64, 18446744073709551615u64]
--          [0u64, 2u64, 9223372036854775807u64, 1u64] }
-- output { [0u64, 4u64, 18446744073709551614u64, 0u64] }

-- ==
-- entry: sub
-- input  { [2u64, 0u64, 9223372036854775808u64]
--          [2u64, 127u64, 18446744073709551615u64] }
-- output { [0u64, 18446744073709551489u64, 9223372036854775809u64] }

-- ==
-- entry: mul
-- input  { [2u64, 2u64,  6442450941u64]
--          [3u64, 0u64, 2147483647u64] }
-- output { [6u64, 0u64, 13835058042397261827u64] }

-- ==
-- entry: pow
-- input  { [2u64, 4021u64, 4021u64, 4021u64, 4021u64, 4021u64, 4021u64, 4021u64, 4021u64]
--          [3u64, 0u64, 1u64, 2u64, 3u64, 4u64, 5u64, 6u64, 7u64] }
-- output { [8u64, 1u64, 4021u64, 16168441u64, 65013301261u64, 261418484370481u64,
--           1051163725653704101u64, 2424947974056870057u64, 10834932764031245949u64] }
